// 公共请求封装
import axios from 'axios'
import { Message } from 'element-ui'
// 导入token和清理token清理方法
import { getLocal, clearLocal } from './local.js'
import router from "@/router/router.js"


var instance = axios.create({
  // 设置基地址
  baseURL: process.env.VUE_APP_URL
  // 跨域照样协带cookie
  // withCredentials: true
})
// 添加请求拦截器
instance.interceptors.request.use(function (config) {
  // 如果有token，加请求头
  if (getLocal('token')) {
    config.headers.token = getLocal('token')
  }
  return config
}, function (error) {
  // 请求错误处理
  return Promise.reject(error)
})

// 添加响应拦截器
instance.interceptors.response.use(function (response) {
  if (response.data.code == 200) {
    // 如果正常响应
    // 简化响应体
    return response.data
  } else if (response.data.code == 206) {
    // token出错处理
    Message.error("登陆超时了！")
    // 清理掉token
    clearLocal()
    // 跳至登陆页
    router.push("/")
    return Promise.reject("error")
  } else {
    // 提示用户错误
    Message.error(response.data.message)
    return Promise.reject("error")
  }
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error)
});
export default instance